{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def reduce_mem_usage_colwise(col):\n",
    "    numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']\n",
    "    col_type = col.dtypes\n",
    "    if col_type in numerics:\n",
    "        c_min = col.min()\n",
    "        c_max = col.max()\n",
    "        if str(col_type)[:3] == 'int':\n",
    "            if c_min > np.iinfo(np.int8).min and c_max < np.iinfo(np.int8).max:\n",
    "                col = col.astype(np.int8)\n",
    "            elif c_min > np.iinfo(np.int16).min and c_max < np.iinfo(np.int16).max:\n",
    "                col = col.astype(np.int16)\n",
    "            elif c_min > np.iinfo(np.int32).min and c_max < np.iinfo(np.int32).max:\n",
    "                col = col.astype(np.int32)\n",
    "            elif c_min > np.iinfo(np.int64).min and c_max < np.iinfo(np.int64).max:\n",
    "                col = col.astype(np.int64)  \n",
    "        else:\n",
    "            if c_min > np.finfo(np.float16).min and c_max < np.finfo(np.float16).max:\n",
    "                col = col.astype(np.float16)\n",
    "            elif c_min > np.finfo(np.float32).min and c_max < np.finfo(np.float32).max:\n",
    "                col = col.astype(np.float32)\n",
    "            else:\n",
    "                col = col.astype(np.float64)       \n",
    "    return col"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "import xgboost as xgb\n",
    "\n",
    "import multiprocessing as mp\n",
    "from functools import partial\n",
    "import gc\n",
    "import time\n",
    "\n",
    "import warnings\n",
    "warnings.simplefilter(action='ignore', category=FutureWarning)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 16.7 s, sys: 2.22 s, total: 18.9 s\n",
      "Wall time: 18.9 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "DATA_PATH = 'Data/'\n",
    "OUTPUT_PATH = 'Output/'\n",
    "\n",
    "train = pd.read_csv(DATA_PATH + 'train_data.csv')\n",
    "train_labels = pd.read_csv(DATA_PATH + 'train_labels.csv')\n",
    "test = pd.read_csv(DATA_PATH + 'test_data.csv')\n",
    "sample_sub = pd.read_csv(DATA_PATH + 'Sample Submission.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train = pd.merge(train, train_labels, on = 'patient_id', how='left')\n",
    "df = pd.concat([train, test])\n",
    "df = df.drop_duplicates()\n",
    "comp_train = train_labels.copy()\n",
    "comp_test = sample_sub.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df['made_payment'] = pd.qcut(df['patient_payment'], 25000, duplicates='drop', labels=False).astype('str')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 14.1 s, sys: 3.26 s, total: 17.3 s\n",
      "Wall time: 17.3 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for c in ['event_name', 'plan_type', 'specialty', 'made_payment']:\n",
    "    temp = df.groupby(['patient_id', c]).size().unstack().reset_index()\n",
    "    temp.columns = [col + '_size_' + c if col != 'patient_id' else 'patient_id' for col in temp.columns]\n",
    "    comp_train = pd.merge(comp_train, temp, on = 'patient_id', how='left')\n",
    "    comp_test = pd.merge(comp_test, temp, on = 'patient_id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 31.2 s, sys: 3.7 s, total: 34.9 s\n",
      "Wall time: 34.9 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for c in ['event_name', 'plan_type', 'specialty', 'made_payment']:\n",
    "    temp = df.groupby(c).apply(lambda x: x.groupby('patient_id')['event_time'].min()).unstack().T.reset_index()\n",
    "    temp.columns = ['recency_' + col + '_' + c if col != 'patient_id' else 'patient_id' for col in temp.columns]\n",
    "    comp_train = pd.merge(comp_train, temp, on = 'patient_id', how='left')\n",
    "    comp_test = pd.merge(comp_test, temp, on = 'patient_id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1min 1s, sys: 3.82 s, total: 1min 5s\n",
      "Wall time: 1min 5s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for c in ['event_name', 'plan_type', 'specialty', 'made_payment']:\n",
    "    temp = df.groupby(c).apply(lambda x: x.groupby('patient_id')['event_time'].nunique()).unstack().T.reset_index()\n",
    "    temp.columns = ['unique_event_time_' + col + '_' + c if col != 'patient_id' else 'patient_id' for col in temp.columns]\n",
    "    comp_train = pd.merge(comp_train, temp, on = 'patient_id', how='left')\n",
    "    comp_test = pd.merge(comp_test, temp, on = 'patient_id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 31.7 s, sys: 4.12 s, total: 35.8 s\n",
      "Wall time: 35.8 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for c in ['event_name', 'plan_type', 'specialty', 'made_payment']:\n",
    "    temp = df.groupby(c).apply(lambda x: x.groupby('patient_id')['event_time'].max()).unstack().T.reset_index()\n",
    "    temp.columns = ['oldest_event_time_' + col + '_' + c if col != 'patient_id' else 'patient_id' for col in temp.columns]\n",
    "    comp_train = pd.merge(comp_train, temp, on = 'patient_id', how='left')\n",
    "    comp_test = pd.merge(comp_test, temp, on = 'patient_id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 20.4 s, sys: 2.83 s, total: 23.2 s\n",
      "Wall time: 23.2 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for c in ['event_name', 'plan_type', 'specialty']:\n",
    "    payment = df.groupby(c).apply(lambda x: x.groupby('patient_id')['patient_payment'].sum()).unstack().T.reset_index()\n",
    "    payment.columns = [col + '_total_payment_' + c if col != 'patient_id' else 'patient_id' for col in payment.columns]\n",
    "    comp_train = pd.merge(comp_train, payment, on = 'patient_id', how='left')\n",
    "    comp_test = pd.merge(comp_test, payment, on = 'patient_id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 20.6 s, sys: 2.77 s, total: 23.3 s\n",
      "Wall time: 23.3 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for c in ['event_name', 'plan_type', 'specialty']:\n",
    "    payment = df.groupby(c).apply(lambda x: x.groupby('patient_id')['patient_payment'].mean()).unstack().T.reset_index()\n",
    "    payment.columns = [col + '_mean_payment_' + c if col != 'patient_id' else 'patient_id' for col in payment.columns]\n",
    "    comp_train = pd.merge(comp_train, payment, on = 'patient_id', how='left')\n",
    "    comp_test = pd.merge(comp_test, payment, on = 'patient_id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 21 s, sys: 2.59 s, total: 23.6 s\n",
      "Wall time: 23.6 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for c in ['event_name', 'plan_type', 'specialty']:\n",
    "    payment = df.groupby(c).apply(lambda x: x.groupby('patient_id')['patient_payment'].max()).unstack().T.reset_index()\n",
    "    payment.columns = [col + '_max_payment_' + c if col != 'patient_id' else 'patient_id' for col in payment.columns]\n",
    "    comp_train = pd.merge(comp_train, payment, on = 'patient_id', how='left')\n",
    "    comp_test = pd.merge(comp_test, payment, on = 'patient_id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "comp_train = comp_train.apply(lambda x: reduce_mem_usage_colwise(x))\n",
    "comp_test = comp_test.apply(lambda x: reduce_mem_usage_colwise(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "del train, test, df, temp, payment\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "13812"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train, test = comp_train, comp_test\n",
    "ID_COL, TARGET_COL = 'patient_id', 'outcome_flag'\n",
    "target = train[TARGET_COL]\n",
    "features = [c for c in train if c not in [ID_COL, TARGET_COL]]\n",
    "features = train[features].isnull().sum().sort_values(ascending=False)[400:].index.tolist()\n",
    "len(features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "params = {\n",
    "    'learning_rate': 0.01,\n",
    "    'max_depth': 4,\n",
    "    'colsample_bytree':.3,\n",
    "    'objective': 'binary:logistic',\n",
    "    'eval_metric': 'auc',\n",
    "    'nthread': 4,\n",
    "    'silent': 1,\n",
    "    \"lambda\": 5,\n",
    "    \"lambda_l2\":5,\n",
    "    'scale_pos_weight': 1,\n",
    "    'grow_policy': 'lossguide',\n",
    "    'max_leaves': 50,\n",
    "    'tree_method': 'exact',\n",
    "    'alpha': 3,\n",
    "    'colsample_bynode': 0.3\n",
    "}\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fold n°0\n",
      "[0]\ttrain-auc:0.754977\tval-auc:0.719272\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.879094\tval-auc:0.842763\n",
      "[800]\ttrain-auc:0.910804\tval-auc:0.864504\n",
      "[1200]\ttrain-auc:0.931068\tval-auc:0.874329\n",
      "[1600]\ttrain-auc:0.944897\tval-auc:0.879686\n",
      "[2000]\ttrain-auc:0.956028\tval-auc:0.882229\n",
      "[2400]\ttrain-auc:0.964759\tval-auc:0.884436\n",
      "[2800]\ttrain-auc:0.971928\tval-auc:0.885817\n",
      "[3200]\ttrain-auc:0.977787\tval-auc:0.886491\n",
      "[3600]\ttrain-auc:0.982297\tval-auc:0.887102\n",
      "[4000]\ttrain-auc:0.985882\tval-auc:0.888093\n",
      "[4400]\ttrain-auc:0.988707\tval-auc:0.888191\n",
      "[4800]\ttrain-auc:0.990996\tval-auc:0.888704\n",
      "[5200]\ttrain-auc:0.992925\tval-auc:0.888856\n",
      "[5600]\ttrain-auc:0.994431\tval-auc:0.888922\n",
      "[6000]\ttrain-auc:0.995657\tval-auc:0.889208\n",
      "[6400]\ttrain-auc:0.996615\tval-auc:0.889377\n",
      "[6800]\ttrain-auc:0.997382\tval-auc:0.889415\n",
      "[7200]\ttrain-auc:0.997992\tval-auc:0.889011\n",
      "Stopping. Best iteration:\n",
      "[6548]\ttrain-auc:0.996904\tval-auc:0.889587\n",
      "\n",
      "fold n°1\n",
      "[0]\ttrain-auc:0.747883\tval-auc:0.72357\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.877723\tval-auc:0.855099\n",
      "[800]\ttrain-auc:0.909411\tval-auc:0.873031\n",
      "[1200]\ttrain-auc:0.929337\tval-auc:0.881366\n",
      "[1600]\ttrain-auc:0.943997\tval-auc:0.88523\n",
      "[2000]\ttrain-auc:0.955356\tval-auc:0.887314\n",
      "[2400]\ttrain-auc:0.964303\tval-auc:0.888311\n",
      "[2800]\ttrain-auc:0.971496\tval-auc:0.888678\n",
      "[3200]\ttrain-auc:0.976979\tval-auc:0.889584\n",
      "[3600]\ttrain-auc:0.981476\tval-auc:0.889661\n",
      "[4000]\ttrain-auc:0.985149\tval-auc:0.890203\n",
      "[4400]\ttrain-auc:0.98824\tval-auc:0.891051\n",
      "[4800]\ttrain-auc:0.990721\tval-auc:0.891318\n",
      "[5200]\ttrain-auc:0.992712\tval-auc:0.891338\n",
      "[5600]\ttrain-auc:0.99428\tval-auc:0.891387\n",
      "[6000]\ttrain-auc:0.99552\tval-auc:0.891814\n",
      "[6400]\ttrain-auc:0.996548\tval-auc:0.891957\n",
      "[6800]\ttrain-auc:0.997334\tval-auc:0.891739\n",
      "Stopping. Best iteration:\n",
      "[6394]\ttrain-auc:0.996533\tval-auc:0.891983\n",
      "\n",
      "fold n°2\n",
      "[0]\ttrain-auc:0.746897\tval-auc:0.728791\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.879888\tval-auc:0.831942\n",
      "[800]\ttrain-auc:0.912134\tval-auc:0.847412\n",
      "[1200]\ttrain-auc:0.932837\tval-auc:0.855707\n",
      "[1600]\ttrain-auc:0.94744\tval-auc:0.858003\n",
      "[2000]\ttrain-auc:0.958503\tval-auc:0.858516\n",
      "[2400]\ttrain-auc:0.966827\tval-auc:0.859361\n",
      "[2800]\ttrain-auc:0.973396\tval-auc:0.859757\n",
      "[3200]\ttrain-auc:0.978558\tval-auc:0.859886\n",
      "[3600]\ttrain-auc:0.982722\tval-auc:0.859849\n",
      "Stopping. Best iteration:\n",
      "[3079]\ttrain-auc:0.977176\tval-auc:0.860164\n",
      "\n",
      "fold n°3\n",
      "[0]\ttrain-auc:0.758589\tval-auc:0.746659\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.880438\tval-auc:0.828078\n",
      "[800]\ttrain-auc:0.911876\tval-auc:0.84689\n",
      "[1200]\ttrain-auc:0.931941\tval-auc:0.854787\n",
      "[1600]\ttrain-auc:0.946475\tval-auc:0.859241\n",
      "[2000]\ttrain-auc:0.957423\tval-auc:0.861425\n",
      "[2400]\ttrain-auc:0.966197\tval-auc:0.86299\n",
      "[2800]\ttrain-auc:0.97302\tval-auc:0.863735\n",
      "[3200]\ttrain-auc:0.978575\tval-auc:0.864352\n",
      "[3600]\ttrain-auc:0.982964\tval-auc:0.864492\n",
      "[4000]\ttrain-auc:0.98646\tval-auc:0.864753\n",
      "[4400]\ttrain-auc:0.989281\tval-auc:0.864538\n",
      "Stopping. Best iteration:\n",
      "[3968]\ttrain-auc:0.986208\tval-auc:0.864905\n",
      "\n",
      "fold n°4\n",
      "[0]\ttrain-auc:0.748392\tval-auc:0.734731\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.880742\tval-auc:0.817605\n",
      "[800]\ttrain-auc:0.912086\tval-auc:0.837236\n",
      "[1200]\ttrain-auc:0.932194\tval-auc:0.844637\n",
      "[1600]\ttrain-auc:0.946629\tval-auc:0.848317\n",
      "[2000]\ttrain-auc:0.957696\tval-auc:0.850791\n",
      "[2400]\ttrain-auc:0.966157\tval-auc:0.852846\n",
      "[2800]\ttrain-auc:0.973107\tval-auc:0.854603\n",
      "[3200]\ttrain-auc:0.978396\tval-auc:0.855529\n",
      "[3600]\ttrain-auc:0.982569\tval-auc:0.856028\n",
      "[4000]\ttrain-auc:0.986103\tval-auc:0.855982\n",
      "[4400]\ttrain-auc:0.989027\tval-auc:0.856048\n",
      "[4800]\ttrain-auc:0.991289\tval-auc:0.856656\n",
      "[5200]\ttrain-auc:0.993099\tval-auc:0.856661\n",
      "[5600]\ttrain-auc:0.994509\tval-auc:0.856613\n",
      "Stopping. Best iteration:\n",
      "[4975]\ttrain-auc:0.992144\tval-auc:0.856922\n",
      "\n",
      "fold n°5\n",
      "[0]\ttrain-auc:0.75586\tval-auc:0.715588\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.881819\tval-auc:0.833413\n",
      "[800]\ttrain-auc:0.913489\tval-auc:0.84554\n",
      "[1200]\ttrain-auc:0.933568\tval-auc:0.849711\n",
      "[1600]\ttrain-auc:0.948006\tval-auc:0.851789\n",
      "[2000]\ttrain-auc:0.958688\tval-auc:0.854234\n",
      "[2400]\ttrain-auc:0.966891\tval-auc:0.855979\n",
      "[2800]\ttrain-auc:0.973344\tval-auc:0.856759\n",
      "[3200]\ttrain-auc:0.978508\tval-auc:0.857249\n",
      "[3600]\ttrain-auc:0.982753\tval-auc:0.857722\n",
      "[4000]\ttrain-auc:0.986266\tval-auc:0.858269\n",
      "[4400]\ttrain-auc:0.989014\tval-auc:0.858559\n",
      "[4800]\ttrain-auc:0.991212\tval-auc:0.85847\n",
      "[5200]\ttrain-auc:0.993033\tval-auc:0.858089\n",
      "Stopping. Best iteration:\n",
      "[4425]\ttrain-auc:0.989176\tval-auc:0.858673\n",
      "\n",
      "fold n°6\n",
      "[0]\ttrain-auc:0.7483\tval-auc:0.746803\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.881683\tval-auc:0.846085\n",
      "[800]\ttrain-auc:0.913219\tval-auc:0.858026\n",
      "[1200]\ttrain-auc:0.932539\tval-auc:0.864113\n",
      "[1600]\ttrain-auc:0.946814\tval-auc:0.867087\n",
      "[2000]\ttrain-auc:0.957896\tval-auc:0.869282\n",
      "[2400]\ttrain-auc:0.966323\tval-auc:0.871235\n",
      "[2800]\ttrain-auc:0.972985\tval-auc:0.872001\n",
      "[3200]\ttrain-auc:0.978445\tval-auc:0.872256\n",
      "[3600]\ttrain-auc:0.982588\tval-auc:0.872279\n",
      "[4000]\ttrain-auc:0.985996\tval-auc:0.872164\n",
      "Stopping. Best iteration:\n",
      "[3260]\ttrain-auc:0.979166\tval-auc:0.872706\n",
      "\n",
      "fold n°7\n",
      "[0]\ttrain-auc:0.744829\tval-auc:0.720305\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.880498\tval-auc:0.818678\n",
      "[800]\ttrain-auc:0.911684\tval-auc:0.837189\n",
      "[1200]\ttrain-auc:0.932112\tval-auc:0.846319\n",
      "[1600]\ttrain-auc:0.946625\tval-auc:0.852102\n",
      "[2000]\ttrain-auc:0.957914\tval-auc:0.855509\n",
      "[2400]\ttrain-auc:0.966585\tval-auc:0.857217\n",
      "[2800]\ttrain-auc:0.973387\tval-auc:0.858717\n",
      "[3200]\ttrain-auc:0.978784\tval-auc:0.859616\n",
      "[3600]\ttrain-auc:0.983007\tval-auc:0.860376\n",
      "[4000]\ttrain-auc:0.986419\tval-auc:0.860889\n",
      "[4400]\ttrain-auc:0.989315\tval-auc:0.860814\n",
      "[4800]\ttrain-auc:0.991624\tval-auc:0.861468\n",
      "[5200]\ttrain-auc:0.99341\tval-auc:0.861776\n",
      "[5600]\ttrain-auc:0.99483\tval-auc:0.861926\n",
      "[6000]\ttrain-auc:0.995958\tval-auc:0.862214\n",
      "[6400]\ttrain-auc:0.996882\tval-auc:0.862315\n",
      "[6800]\ttrain-auc:0.997601\tval-auc:0.862326\n",
      "[7200]\ttrain-auc:0.99817\tval-auc:0.86213\n",
      "Stopping. Best iteration:\n",
      "[6455]\ttrain-auc:0.996997\tval-auc:0.862436\n",
      "\n",
      "fold n°8\n",
      "[0]\ttrain-auc:0.745471\tval-auc:0.761841\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.878191\tval-auc:0.846131\n",
      "[800]\ttrain-auc:0.910604\tval-auc:0.866272\n",
      "[1200]\ttrain-auc:0.931385\tval-auc:0.873763\n",
      "[1600]\ttrain-auc:0.946032\tval-auc:0.878866\n",
      "[2000]\ttrain-auc:0.957186\tval-auc:0.881243\n",
      "[2400]\ttrain-auc:0.965638\tval-auc:0.882766\n",
      "[2800]\ttrain-auc:0.972738\tval-auc:0.884238\n",
      "[3200]\ttrain-auc:0.978312\tval-auc:0.88467\n",
      "[3600]\ttrain-auc:0.982656\tval-auc:0.884558\n",
      "[4000]\ttrain-auc:0.98625\tval-auc:0.884284\n",
      "Stopping. Best iteration:\n",
      "[3354]\ttrain-auc:0.980066\tval-auc:0.884909\n",
      "\n",
      "fold n°9\n",
      "[0]\ttrain-auc:0.746716\tval-auc:0.741142\n",
      "Multiple eval metrics have been passed: 'val-auc' will be used for early stopping.\n",
      "\n",
      "Will train until val-auc hasn't improved in 800 rounds.\n",
      "[400]\ttrain-auc:0.882865\tval-auc:0.816979\n",
      "[800]\ttrain-auc:0.914084\tval-auc:0.830657\n",
      "[1200]\ttrain-auc:0.934428\tval-auc:0.83913\n",
      "[1600]\ttrain-auc:0.948584\tval-auc:0.843741\n",
      "[2000]\ttrain-auc:0.959461\tval-auc:0.847214\n",
      "[2400]\ttrain-auc:0.967734\tval-auc:0.849412\n",
      "[2800]\ttrain-auc:0.974454\tval-auc:0.851402\n",
      "[3200]\ttrain-auc:0.979751\tval-auc:0.853216\n",
      "[3600]\ttrain-auc:0.983976\tval-auc:0.854682\n",
      "[4000]\ttrain-auc:0.987185\tval-auc:0.855325\n",
      "[4400]\ttrain-auc:0.990024\tval-auc:0.856344\n",
      "[4800]\ttrain-auc:0.99213\tval-auc:0.857344\n",
      "[5200]\ttrain-auc:0.993851\tval-auc:0.858219\n",
      "[5600]\ttrain-auc:0.9952\tval-auc:0.858527\n",
      "[6000]\ttrain-auc:0.996337\tval-auc:0.858784\n",
      "[6400]\ttrain-auc:0.997224\tval-auc:0.859049\n",
      "[6800]\ttrain-auc:0.997939\tval-auc:0.859437\n",
      "[7200]\ttrain-auc:0.998522\tval-auc:0.859452\n",
      "[7600]\ttrain-auc:0.998957\tval-auc:0.859653\n",
      "[8000]\ttrain-auc:0.999275\tval-auc:0.859841\n",
      "[8400]\ttrain-auc:0.999497\tval-auc:0.859754\n",
      "Stopping. Best iteration:\n",
      "[7957]\ttrain-auc:0.999243\tval-auc:0.859993\n",
      "\n",
      "CV score: 0.86858 \n"
     ]
    }
   ],
   "source": [
    "max_iter = 10\n",
    "folds = StratifiedKFold(n_splits=10, random_state=1991)\n",
    "oof = np.zeros(len(train))\n",
    "predictions = np.zeros(len(test))\n",
    "feature_importance_df = pd.DataFrame()\n",
    "\n",
    "for fold_, (trn_idx, val_idx) in enumerate(folds.split(train.values, target.values)):\n",
    "    print(\"fold n°{}\".format(fold_))\n",
    "    X_trn, y_trn = train.iloc[trn_idx][features], target.iloc[trn_idx]\n",
    "    X_val, y_val = train.iloc[val_idx][features], target.iloc[val_idx]\n",
    "    X_trn = xgb.DMatrix(X_trn, label=y_trn)\n",
    "    X_val = xgb.DMatrix(X_val, label=y_val)\n",
    "    X_test = xgb.DMatrix(test[features])\n",
    "    clf = xgb.train(params, X_trn, 50000, [(X_trn,'train'),(X_val,'val')], verbose_eval = 400, early_stopping_rounds=800)\n",
    "    gc.collect()\n",
    "    oof[val_idx] = clf.predict(X_val)\n",
    "    \n",
    "    fold_importance_df = pd.DataFrame({\"importance\": clf.get_fscore(), \"fold\": fold_ + 1}).reset_index().rename({'index': 'feature'}, axis=1)\n",
    "    feature_importance_df = pd.concat([feature_importance_df, fold_importance_df], axis=0)\n",
    "\n",
    "    current_pred = clf.predict(X_test)\n",
    "    predictions += current_pred / min(folds.n_splits, max_iter)\n",
    "\n",
    "\n",
    "print(\"CV score: {:<8.5f}\".format(roc_auc_score(target, oof)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "feature_importance_df.to_csv('feat_importance.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe403f77400>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fi = feature_importance_df.groupby('feature')['importance'].mean().sort_values()\n",
    "plt.figure(figsize=(10,10))\n",
    "fi[-20:].plot.barh(fontsize=14)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total no. of useful features are: 4319\n"
     ]
    }
   ],
   "source": [
    "print(f\"Total no. of useful features are: {(fi != 0).sum()}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "_ = pd.Series(predictions).plot(kind='density')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "oof_df = pd.DataFrame()\n",
    "oof_df['patient_id'] = comp_train['patient_id']\n",
    "oof_df[TARGET_COL] = oof\n",
    "oof_df.to_csv(OUTPUT_PATH + 'oofs_xgb.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>patient_id</th>\n",
       "      <th>outcome_flag</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>patient_2</td>\n",
       "      <td>0.066722</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>patient_3</td>\n",
       "      <td>0.193054</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>patient_5</td>\n",
       "      <td>0.589803</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>patient_8</td>\n",
       "      <td>0.002628</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>patient_14</td>\n",
       "      <td>0.515553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>patient_15</td>\n",
       "      <td>0.106333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>patient_16</td>\n",
       "      <td>0.005624</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>patient_33</td>\n",
       "      <td>0.143846</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>patient_38</td>\n",
       "      <td>0.006021</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>patient_41</td>\n",
       "      <td>0.161792</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   patient_id  outcome_flag\n",
       "0   patient_2      0.066722\n",
       "1   patient_3      0.193054\n",
       "2   patient_5      0.589803\n",
       "3   patient_8      0.002628\n",
       "4  patient_14      0.515553\n",
       "5  patient_15      0.106333\n",
       "6  patient_16      0.005624\n",
       "7  patient_33      0.143846\n",
       "8  patient_38      0.006021\n",
       "9  patient_41      0.161792"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sub_df = pd.DataFrame()\n",
    "sub_df[ID_COL] = comp_test[ID_COL]\n",
    "sub_df[TARGET_COL] = predictions\n",
    "sub_df[[TARGET_COL]].to_excel(OUTPUT_PATH + 'preds_xgb.xlsx', index=False)\n",
    "sub_df.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DONE-------------- !!!\n"
     ]
    }
   ],
   "source": [
    "print(\"DONE-------------- !!!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
